package cn.easybuy.utils;

import java.util.ArrayList;
import java.util.List;

import cn.easybuy.entity.Product;

public class ShoppingCart {
	private List<ShoppingCartItem> items=new ArrayList<ShoppingCartItem>();//整体购物车的集合 每一条数据都是一个ShoppingCartItem对象
	private Double sum;//商品总计

	//获取购物车中的所有商品
	public List<ShoppingCartItem> getItems() {
		return items;
	}	
	//设置购物车集合
	public void setItems(List<ShoppingCartItem> items) {
		this.items = items;
	}
	//获取总计
	public Double getSum() {
		return sum;
	}

	//设置总计
	public void setSum(Double sum) {
		this.sum = sum;
	}

	//计算价格
	public Double getTotal(){
		Double sum = 0.0;
		//循环items集合 取出所有集合项中的小计值 sum进行累加
		for (ShoppingCartItem item : items) {
			sum+=item.getCost();
		}
		//给总价属性赋值
		this.sum = sum;
		return sum;
	}
	
	//新增商品
	public String addItem(Product product,Integer quantity){
		int flag = 0;//标识 判断购物车内是否有此件商品
		for (ShoppingCartItem item : items) {
			if(item.getProduct().getId()==product.getId()){
				if(item.getQuantity()+quantity>product.getStock()){
					return "商品数量不足";
				}else{
					item.setQuantity(item.getQuantity()+quantity);	
					flag=1;
				}
			}
		}
		//如果购买的数量大于商品库存 则提示商品数量不足
		if(quantity>product.getStock()){
			return "商品数量不足";
		}
		//如果flag=0 代表购物车内不存在该商品 则重新New一个ShoppingCartItem对象 并且添加进items集合中
		if(flag==0){
			items.add(new ShoppingCartItem(product, quantity));
		}
		return "成功";
	}
	
	//删除指定商品
	public void removeItem(int index){
		items.remove(index);
	}
	//修改商品数量
	public void modifyQuantity(int index,Integer quantity){
		items.get(index).setQuantity(quantity);
	}
}
